<html>
<head><meta charset="utf-8"><title>Updated RFC · wg-async-foundations/stream-trait-rfc · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/index.html">wg-async-foundations/stream-trait-rfc</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html">Updated RFC</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="205966936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/205966936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#205966936">(Aug 04 2020 at 22:07)</a>:</h4>
<p>Added some wording to the draft RFC around using Unpin with streams and generator syntax <a href="https://github.com/rust-lang/wg-async-foundations/pull/17">https://github.com/rust-lang/wg-async-foundations/pull/17</a></p>



<a name="206481789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/206481789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#206481789">(Aug 10 2020 at 16:30)</a>:</h4>
<p>Gentle reminder on ^ (does anyone seen anything that would potentially block opening the RFC on rust-lang/rfcs?)</p>



<a name="210053568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/210053568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#210053568">(Sep 14 2020 at 19:43)</a>:</h4>
<p>Just opened up a new draft of the RFC - this one incorporating feedback from the lang team meeting a few weeks ago</p>



<a name="210054967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/210054967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#210054967">(Sep 14 2020 at 19:55)</a>:</h4>
<p>And it would help if I actually linked to it...https://github.com/rust-lang/wg-async-foundations/pull/18</p>



<a name="210055060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/210055060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#210055060">(Sep 14 2020 at 19:56)</a>:</h4>
<p>gah, forgot I already had a PR open</p>



<a name="210055069"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/210055069" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#210055069">(Sep 14 2020 at 19:56)</a>:</h4>
<p>merging them</p>



<a name="210056205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/210056205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#210056205">(Sep 14 2020 at 20:05)</a>:</h4>
<p>Done</p>



<a name="210056225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/210056225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#210056225">(Sep 14 2020 at 20:05)</a>:</h4>
<p>.https://github.com/rust-lang/wg-async-foundations/pull/18 is the latest draft!</p>



<a name="211068035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211068035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211068035">(Sep 23 2020 at 22:06)</a>:</h4>
<p>I just updated the RFC with the suggestions made by <span class="user-mention" data-user-id="116883">@tmandry</span> last week</p>



<a name="211068081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211068081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211068081">(Sep 23 2020 at 22:07)</a>:</h4>
<p>@WG-async-foundations are there any objections to me opening up the formal stream RFC with the content in this pull request? <a href="https://github.com/rust-lang/wg-async-foundations/pull/18">https://github.com/rust-lang/wg-async-foundations/pull/18</a></p>



<a name="211068097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211068097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211068097">(Sep 23 2020 at 22:07)</a>:</h4>
<p>I'd love to get the formal RFC moving</p>



<a name="211068478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211068478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211068478">(Sep 23 2020 at 22:11)</a>:</h4>
<p><a href="https://github.com/nellshamrell/wg-async-foundations/blob/update-async-draft/rfc-drafts/stream.md">Rendered</a></p>



<a name="211068662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211068662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211068662">(Sep 23 2020 at 22:12)</a>:</h4>
<p>None from me! If it needs further edits and clarifications, those can always happen once it's up</p>



<a name="211068844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211068844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211068844">(Sep 23 2020 at 22:14)</a>:</h4>
<p>But we've poured a lot of effort into this and I think it looks great <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="211069112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211069112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211069112">(Sep 23 2020 at 22:17)</a>:</h4>
<p>Noticed a minor thing.. in the guide-level explanation it doesn't look like the <code>next</code> method is provided. If we gave it a body (possibly ellipsized), like</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="w">    </span><span class="c1">// Convenience methods (covered later on in the RFC):</span>
<span class="w">    </span><span class="k">fn</span> <span class="nf">next</span><span class="p">(</span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="bp">self</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">Next</span><span class="o">&lt;'</span><span class="nb">_</span><span class="p">,</span><span class="w"> </span><span class="bp">Self</span><span class="o">&gt;</span><span class="w"></span>
<span class="w">    </span><span class="k">where</span><span class="w"></span>
<span class="w">        </span><span class="bp">Self</span>: <span class="nb">Unpin</span>
    <span class="p">{</span><span class="w"> </span><span class="o">..</span><span class="p">.</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</code></pre></div>

<p>it might be clearer</p>



<a name="211069298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211069298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211069298">(Sep 23 2020 at 22:19)</a>:</h4>
<p>Thanks <span class="user-mention" data-user-id="225192">@Nell Shamrell-Harrington</span> for all the work you've done on this</p>



<a name="211435644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211435644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sam Sartor <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211435644">(Sep 27 2020 at 21:36)</a>:</h4>
<p>(deleted)</p>



<a name="211646438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211646438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211646438">(Sep 29 2020 at 16:27)</a>:</h4>
<p>Hi <span class="user-mention" data-user-id="222520">@Sam Sartor</span> - I'm going to go ahead and open this, but that would be a great question to ask on the RFC once it is open so the whole community can see it and weigh in :)</p>



<a name="211650872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211650872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211650872">(Sep 29 2020 at 16:58)</a>:</h4>
<p>RFC is live <a href="https://github.com/rust-lang/rfcs/pull/2996">https://github.com/rust-lang/rfcs/pull/2996</a></p>



<a name="211980614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211980614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211980614">(Oct 01 2020 at 21:53)</a>:</h4>
<p><span class="user-mention" data-user-id="225192">@Nell Shamrell-Harrington</span> Josh mentioned in the thread that an <code>Iterator -&gt; Stream</code> utility might be a good addition in the future; this may be useful to mention under <code># future possibilities</code>. Would it be useful to submit a PR to the PR for this, or is it easier if you add it, or..? -- It's been a while since I've contributed to an existing PR haha</p>



<a name="211983821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211983821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211983821">(Oct 01 2020 at 22:26)</a>:</h4>
<p>Heh, I can go ahead and add it :)</p>



<a name="211985384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/211985384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#211985384">(Oct 01 2020 at 22:44)</a>:</h4>
<p>Done!</p>



<a name="212044050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/212044050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#212044050">(Oct 02 2020 at 08:05)</a>:</h4>
<p>Yay!</p>



<a name="217088621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217088621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217088621">(Nov 18 2020 at 02:16)</a>:</h4>
<p>Hello all! (I promise I have not completely disappeared!)</p>



<a name="217088845"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217088845" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217088845">(Nov 18 2020 at 02:20)</a>:</h4>
<p>I've updated the RFC with some of KodrAus's requests for addition (<a href="https://github.com/rust-lang/rfcs/pull/2996#issuecomment-725696389">https://github.com/rust-lang/rfcs/pull/2996#issuecomment-725696389</a>) , including</p>
<ul>
<li>examples of how we expect Streams to be written and consumed (thank you to <span class="user-mention" data-user-id="211722">@Yoshua Wuyts</span> for your PR to add Stream to the standard library - I was able to pull examples from there!)</li>
<li>how unergonomic using a Stream without next would be</li>
<li>inlining more of the discussion around why we require Self: Unpin in the next method</li>
</ul>
<p>There are a couple of points where I could use some help:</p>
<ul>
<li>why is relying on extension traits not sufficient with re: to streams?</li>
<li>how does requiring Self:Unpin in the next method potentially affect adding for loops in the future?</li>
</ul>



<a name="217088860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217088860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217088860">(Nov 18 2020 at 02:21)</a>:</h4>
<p>We've been working on this for so long, I'm really anxious to see it land!</p>



<a name="217089167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217089167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217089167">(Nov 18 2020 at 02:27)</a>:</h4>
<p><span class="user-mention" data-user-id="225192">@Nell Shamrell-Harrington</span> can you elaborate what you mean by: "Why is relying on extension traits not sufficient"</p>



<a name="217089436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217089436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217089436">(Nov 18 2020 at 02:31)</a>:</h4>
<p>I'm assuming this is just about <code>next</code>? — I don't believe either <code>size_hint</code> or <code>poll_next</code> can be expressed as an extension — <code>size_hint</code> is expected to be overwritten which cannot be done because of the blanket impl on <code>Stream</code> prevents if from being manually implemented (which is required to override it)</p>



<a name="217089759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217089759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217089759">(Nov 18 2020 at 02:36)</a>:</h4>
<p>For <code>next</code>, it goes back to ergonomics.. it's probably going to be the most used method, so requiring importing an extension trait is not ideal</p>



<a name="217090125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217090125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217090125">(Nov 18 2020 at 02:42)</a>:</h4>
<blockquote>
<p>how does requiring Self:Unpin in the next method potentially affect adding for loops in the future?</p>
</blockquote>
<p>I'd say it doesn't affect it very much. It remains the case that you need to have something be <code>Unpin</code> (possibly by pinning it!) before looping over it. We could make for loops always pin on the stack for you in the desugaring.</p>
<p><code>Pin&lt;&amp;mut T&gt;: Unpin</code> for any <code>T</code>, so they can always satisfy the bound that way (by invoking <code>next</code> through the blanket Stream impl for Pin)</p>



<a name="217093288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217093288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217093288">(Nov 18 2020 at 03:45)</a>:</h4>
<p>Would you two mind mentioning those points in the RFC?</p>



<a name="217093341"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217093341" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217093341">(Nov 18 2020 at 03:46)</a>:</h4>
<p>My impression from this comment <a href="https://github.com/rust-lang/rfcs/pull/2996#issuecomment-725696389">https://github.com/rust-lang/rfcs/pull/2996#issuecomment-725696389</a> was that accepting the RFC was blocked without incorporating answers to those questions in the RFC</p>



<a name="217093344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217093344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217093344">(Nov 18 2020 at 03:46)</a>:</h4>
<p>(mention in the comments on the RFC, that is)</p>



<a name="217095203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217095203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217095203">(Nov 18 2020 at 04:27)</a>:</h4>
<p>Done!</p>



<a name="217171008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/217171008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#217171008">(Nov 18 2020 at 17:45)</a>:</h4>
<p>ty!</p>



<a name="218509104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509104">(Dec 02 2020 at 02:39)</a>:</h4>
<p><span class="user-mention" data-user-id="116883">@tmandry</span> you read my mind on what I was going to ask for help responding to in the RFC :)</p>



<a name="218509109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509109">(Dec 02 2020 at 02:39)</a>:</h4>
<p>ty!</p>



<a name="218509170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509170">(Dec 02 2020 at 02:40)</a>:</h4>
<p>np :) I've been meaning to give it a final pass (doing now)</p>



<a name="218509528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509528">(Dec 02 2020 at 02:47)</a>:</h4>
<p>Does this code example make sense for using Box::pin?</p>
<div class="codehilite"><pre><span></span><code>let stream = Box::pin(non_unpin_stream());
while let Some(item) = stream.next().await {
  ...
}
</code></pre></div>



<a name="218509535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509535">(Dec 02 2020 at 02:47)</a>:</h4>
<p>yeah</p>



<a name="218509536"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509536" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509536">(Dec 02 2020 at 02:47)</a>:</h4>
<p>cool</p>



<a name="218509538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509538">(Dec 02 2020 at 02:47)</a>:</h4>
<p>I will add that in</p>



<a name="218509541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509541">(Dec 02 2020 at 02:47)</a>:</h4>
<p>only <code>pin_mut!</code> needs its own line</p>



<a name="218509548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509548">(Dec 02 2020 at 02:47)</a>:</h4>
<p>cool!</p>



<a name="218509549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509549">(Dec 02 2020 at 02:47)</a>:</h4>
<p>(and that's part of the futures crate, not std)</p>



<a name="218509555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509555">(Dec 02 2020 at 02:47)</a>:</h4>
<p>pin_mut! is?</p>



<a name="218509563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509563">(Dec 02 2020 at 02:48)</a>:</h4>
<p>yeah</p>



<a name="218509626"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509626" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509626">(Dec 02 2020 at 02:49)</a>:</h4>
<p>I see it as part of the pin_utils crate here <a href="https://docs.rs/pin-utils/0.1.0-alpha.4/pin_utils/macro.pin_mut.html">https://docs.rs/pin-utils/0.1.0-alpha.4/pin_utils/macro.pin_mut.html</a></p>



<a name="218509635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509635">(Dec 02 2020 at 02:49)</a>:</h4>
<p>(which futures might call)</p>



<a name="218509642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509642">(Dec 02 2020 at 02:49)</a>:</h4>
<p>dagnammit</p>



<a name="218509645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509645">(Dec 02 2020 at 02:49)</a>:</h4>
<p>yeah, it's part of that too</p>



<a name="218509649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509649">(Dec 02 2020 at 02:49)</a>:</h4>
<p>confirmed :)</p>



<a name="218509698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509698">(Dec 02 2020 at 02:50)</a>:</h4>
<p>even though it's not in std, I personally like to show it to emphasize that our safety abstractions aren't requiring anyone to allocate =)</p>



<a name="218509704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218509704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218509704">(Dec 02 2020 at 02:50)</a>:</h4>
<p>totes!</p>



<a name="218634104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218634104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218634104">(Dec 02 2020 at 23:15)</a>:</h4>
<p><span class="user-mention" data-user-id="225192">@Nell Shamrell-Harrington</span> I don't know if you saw, I posted another round of comments last night (I reviewed each half separately)</p>



<a name="218638538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218638538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218638538">(Dec 03 2020 at 00:06)</a>:</h4>
<p>Yep! I'll address them when I am off work today :)</p>



<a name="218966909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/218966909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#218966909">(Dec 06 2020 at 03:40)</a>:</h4>
<p>OMG we are so close! <span class="user-mention" data-user-id="116883">@tmandry</span> finally was able to address your comments today, we just have one that is waiting on Boat's confirmation</p>



<a name="219931419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/219931419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#219931419">(Dec 15 2020 at 02:42)</a>:</h4>
<p>Ok - all comment addressed in <a href="https://github.com/rust-lang/rfcs/pull/2996">https://github.com/rust-lang/rfcs/pull/2996</a> - hope it gets approved now?</p>



<a name="220355140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/220355140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#220355140">(Dec 18 2020 at 10:18)</a>:</h4>
<p>ohhh, FCP started!</p>



<a name="223125528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/223125528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Barretto <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#223125528">(Jan 18 2021 at 14:24)</a>:</h4>
<p>Hi all. I have a few concerns about the current proposal for <code>Stream</code> that I've <a href="https://github.com/rust-lang/rfcs/pull/2996">put up on the issue</a>, along with a proposal that would improve the usefulness of the trait and remove a glass ceiling on the efficiency of certain implementers.</p>



<a name="223186278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/223186278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nell Shamrell-Harrington <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#223186278">(Jan 19 2021 at 04:25)</a>:</h4>
<p>Understood, and I think those are valid concerns. Could others on the team weigh in as well? I'd like to gather more perspectives before drafting a change to the language of the RFC. At them moment, in order to keep the initial implementation as minimal as possible, I'm leaning toward somehow conveying that we don't recommend the use of streams with certain types of channels. I would really like more input, though.</p>



<a name="223236752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/223236752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Barretto <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#223236752">(Jan 19 2021 at 14:53)</a>:</h4>
<p><span class="user-mention" data-user-id="225192">@Nell Shamrell-Harrington</span> I worry that this might make the initial implementation incompatible with future changes. If not in the easy way (compilation errors) then in the hard way (logic errors due to invariants not being upheld). Although I appreciate all of the work that has gone into this proposal so far, I don't think that in its current form it is insufficient to fulfill the needs that people expect of it, nor is it forward-compatible with a design that is.</p>



<a name="223237174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated%20RFC/near/223237174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Gilcher <a href="https://rust-lang.github.io/zulip_archive/stream/249502-wg-async-foundations/stream-trait-rfc/topic/Updated.20RFC.html#223237174">(Jan 19 2021 at 14:56)</a>:</h4>
<p>What could those future changes be?</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>